void main(){

/**
 * 闭包：
 * 1.全局变量的特点：全局变量常驻内存，全局变量污染全局
 * 2.局部变量的特点：不常驻内存会被垃圾机制回收，不会污染全局
 * 
 * 想实现的功能：
 * 
 * 1.常驻内存
 * 2.不污染环境
 * 
 * 产生了闭包，闭包可以解决这个问题......
 * 
 * 闭包：函数嵌套函数，内部函数会调用外部函数的变量或参数，变量或参数不会被系统回收
 * 
 * 闭包的写法：函数嵌套函数，并return里面的函数，这样就形成了闭包
 * 
 */ 

//全局变量
var a=123;

fn(){

  a++;

  print(a);

}

fn();//124
fn();//125
fn();//126


//局部变量(会被垃圾回收掉)

printInfo(){

var myNum=123;

myNum++;

print(myNum);

}

printInfo();//124
printInfo();//124
printInfo();//124


//闭包
//函数嵌套函数形成闭包，不会被系统回收掉

fn2(){

var a=123;//不会污染全局 常驻内存

return(){

a++;

print(a);

};


}
var b=fn2();

b();//124
b();//125
b();//126

}